/**
 * 一堆石子，可取[1, M]个，取走最后一个算负。
 * 此外，当P为0，则先手可以选定一个回合连走2次(也可以放弃这个机会)
 * 当P为1则后手有这个权利
 * 问先手胜负
 * 特判N==1的情况， 先手必负。然后将N减一。
 * 如果不考虑P，则将N减一以后就是一个巴什博弈
 * sg = N % (M + 1)
 * 如果N > M，则连走两次者必胜。
 * 当sg不为0时，如果先手有机会，则他不用即可，只需走到sg为0的位置即可。
 * 如果先手没有机会，他也只能走到sg为0的位置，此时后手有机会连走两次，这能让先手落到sg为0的位置
 * 当sg为0时，如果先手有机会，自然要采用使得后手落到sg为0的位置。否则先手必负。
 * 因此综合起来连走两次者必胜
 * 当N<=M，则先手必胜，因为可以直接拿完（注意这个N已经是原输入减一的）。
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using vi = vector<int>;

const string Ans[2] = {
    "XiaoNian", "YangQiShaoNian"
};

int N, M, P;

int proc(){
    if(1 == N) return 1;
    if(2 == N) return 0;
    
    N -= 1;    
    int sg = N % (M + 1);

    if(0 == sg){
        return 0 == P ? 0 : 1;
    }

    if(N <= M){
        return 0;
    }

    return 0 == P ? 0 : 1;
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> N >> M >> P;
        cout << Ans[proc()] << "\n";
    }
    return 0;
}